package com.deliccio.controller.mobile;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.deliccio.entitys.Mesa;
import com.deliccio.entitys.ProductoPorSucursal;
import com.deliccio.service.PedidosMobileService;

@Controller
public class PedidosMobileController{

	
	@Autowired
	private PedidosMobileService pedidosMobileService;
 	@RequestMapping(value="mobile/devolverStockProductos/{idProducto}/{idSucursal}",method=RequestMethod.POST)
	public @ResponseBody Map<String,Object> devolverStockProductos(@PathVariable  int idProducto,@PathVariable  int idSucursal){
		Map<String,Object> obj=new HashMap<String,Object>();
		obj.put("resp",pedidosMobileService.devolverStockProductos(idProducto,idSucursal));
		return obj;
	}
	
	@RequestMapping(value="mobile/Mesas/{idSucursal}",method=RequestMethod.POST)
	public @ResponseBody  Map<String,Object>  todaslasMesasporSucursal(@PathVariable  int idSucursal){
		Map<String,Object> obj=new HashMap<String,Object>();
		obj.put("todasLasMesas",pedidosMobileService.obtenerMesaPorSucursal(idSucursal));
		return obj;
	}
	
	@RequestMapping(value="mobile/pedido",method=RequestMethod.POST)
	public @ResponseBody Map<String, Object> pedido(@RequestParam  int[] productos,@RequestParam  int[] cantidad,@RequestParam  int[] mesas,@RequestParam  int sucursal,@RequestParam int usuario){
		Map<String, Object> respuesta = new HashMap<String, Object>();
			try {
				respuesta.put("resp",pedidosMobileService.realizarPedido(productos,cantidad,mesas,sucursal,usuario));
			} catch (Exception e) {
				e.printStackTrace();
				respuesta.put("resp",null);
			}
			return respuesta;
	}
	
	@RequestMapping(value="mobile/pedidoFinalizado",method=RequestMethod.POST)
	public @ResponseBody  int pedidoFinalizado(@RequestParam  int pedido,@RequestParam int mesa ){
		try{
			return pedidosMobileService.pedidoFinalizado(pedido,mesa);
		}
		catch(Exception e){
			return -1;
		}		
	}
		
	@RequestMapping(value="mobile/obtenerMesas",method=RequestMethod.POST)
	public @ResponseBody Map<String, Object>  obeterMesas (@RequestParam  int idUsuario ){
		Map<String, Object> respuesta = new HashMap<String, Object>();
		try {
			respuesta.put("listaMesas",pedidosMobileService.obeterMesas(idUsuario));
		} catch (Exception e) {
			e.printStackTrace();
			respuesta.put("resp",null);
		}
		return respuesta;
	}
	

	@RequestMapping(value="mobile/cerrarMesas",method=RequestMethod.GET)
	public @ResponseBody Map<String, Object>  cerrarMesa (@RequestParam  int[] idsMesas ){
		Map<String, Object> respuesta = new HashMap<String, Object>();
		try {
			respuesta.put("cerrarMesas",pedidosMobileService.cerrarMesas(idsMesas));
		} catch (Exception e) {
			e.printStackTrace();
			respuesta.put("resp",null);
		}
		return respuesta;
	}
	
	
}

